We don’t have 2 countries on the list (Spain and
Russia) because they don’t have any related city in the city table“. This shall prove crucial when comparing INNER JOIN vs LEFT JOIN. In some cases, we want to have even these records in our results.
For example, you simply want to see in the result that these countries
don’t have related records in another table. This could be part of some
control, or maybe just counting cases, etc. No matter what the
motivation behind that desire is, we should be technically able to do
that.
And we are. In databases, LEFT JOIN does exactly that.
![Screenshot from 2016-12-19 12-53-29](https://media.geeksforgeeks.org/wp-content/cdn-uploads/table1-3.png)
![table5](https://media.geeksforgeeks.org/wp-content/uploads/table5.png)
![](https://i.stack.imgur.com/VkAT5.png)
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
LEFT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
https://www.sqlshack.com/learn-sql-inner-join-vs-left-join/
The result of LEFT JOIN shall be the same as the result of INNER JOIN + we’ll have rows, from the “left” table, without a pair in the “right” table. We’ll use the same INNER JOIN query and just replace the word INNER with LEFT. This is the result:
You can easily notice, that we have 2 more rows, compared to the result of the INNER JOIN query. These are rows for
Russia and Spain. Since they both don’t have any related city, all city attributes in these two rows have NULL
values (are not defined). That is the biggest difference when comparing INNER JOIN vs LEFT JOIN.
Student
![Screenshot from 2016-12-19 12-53-29](https://media.geeksforgeeks.org/wp-content/cdn-uploads/table1-3.png)
course
![table5](https://media.geeksforgeeks.org/wp-content/uploads/table5.png)
![](https://i.stack.imgur.com/VkAT5.png)
SELECT Student.NAME,StudentCourse.COURSE_ID
FROM Student
LEFT JOIN StudentCourse
ON StudentCourse.ROLL_NO = Student.ROLL_NO;
https://www.sqlshack.com/learn-sql-inner-join-vs-left-join/
No comments:
Post a Comment